vai al contenuto principale

System properties

Tutte le altre proprietà della cloudlet si trovano all’interno della tabella @sys@properties, ad esclusione della configurazione del dataSource della cloudlet.

Le proprietà presenti all’interno di questa tabella si dividono in due grandi famiglie:

  1. System: proprietà generali di sistema;
  2. Mail: proprietà relative alla configurazione del componente utilizzato dalla cloudlet per l’invio delle email.

Proprietà di tipo system #

WORKGROUP_PATH #

Indica il path a cui si trova il file system della cloudlet.

Required: no
Default: false


NUMBER_OF_ATTEMPTS_TO_ACQUIRE_LOCKS #

Indica il numero di tentativi che il sistema di gestione della concorrenza effettua per acquisire i lock degli oggetti coinvolti nelle modifiche da persistere prima di effettuare una transazione sul database della cloudlet.

Required: no
Default: 20


MILLIS_BETWEEN_ATTEMPTS_TO_ACQUIRE_LOCKS #

Indica il tempo di attesa per riprovare ad acquisire i lock per persistere le modifiche sul database della cloudlet, a seguito di un fallimento nell’acquisizione.

Required: no
Default: 300


APPLICATION_LOCK_DURATION_MINUTES #

Indica il tempo oltre il quale un lock acquisito da un utente per la modifica o la cancellazione di un oggetto viene automaticamente rilasciato (a meno che l’utente che ha acquisito il lock non lo rilasci in modo esplicito).

Required: no
Default: 5


DATABASE_LOCK_DURATION_MINUTES #

Indica il tempo oltre il quale un lock acquisito da un utente per persistere su database le modifiche relative ad un oggetto viene automaticamente rilasciato.

Required: no
Default: 30


MAX_INACTIVE_SESSION_TIME_MILLIS #

Indica il tempo oltre il quale una sessione lato server su cui non vengono effettuate chiamate viene rimossa.

Required: no
Default: 1 hour


OBJECT_LOCK_REGISTRY_TYPE #

Indica il tipo del registro che viene utilizzato per acquisire i lock all’interno della cloudlet.

In base al valore espresso, la cloudlet utilizzerà un componente in MEMORY per gestire lo stato dei lock della cloudlet, oppure un componente che persiste lo stato sul DATABASE. Quest’ultima implementazione sarà obbligatoria per supportare correttamente il DEPLOYMENT_MODE di tipo MULTIPLE_NODES.

Required: no
Default: MEMORY


ENABLE_STOP_WATCH #

Impostando questa proprietà a true si attivano gli stopwatch inseriti all’interno del framework della cloudlet. Gli stopwatch sono degli oggetti che permettono di tenere traccia del tempo di esecuzione di alcuni servizi critici della cloudlet. Per ogni stopwatch è definito un tempo massimo di esecuzione, oltrepassato il quale viene loggato all’interno della cloudlet il tempo di esecuzione effettivo di quel servizio con un apposito messaggio.

Required: no
Default: false


STOP_WATCH_LOG_MAX_MILLIS #

Indica il tempo massimo di esecuzione di alcuni stopwatch inseriti all’interno del framework della cloudlet, oltrepassato il quale lo stopwatch stesso scriverà nel log il proprio tempo di esecuzione effettivo con un apposito messaggio.

Required: no
Default: 500


HANDLER_LOG_MAX_MILLIS #

Indica il tempo massimo di esecuzione degli stopwatch inseriti all’interno del framework per l’invocazione degli handler della cloudlet; per questi servizi è stato definito un parametro specifico in modo da poter distinguere il log dei tempi di esecuzione dei servizi interni al framework da quello dei servizi inseriti tramite plugin.

Required: no
Default: 500


ENABLE_SLOW_QUERY_LOG #

Impostando questa proprietà a true si abilita il log delle slow query. Le query il cui tempo di esecuzione supera il valore indicato nella proprietà SLOW_QUERY_LOG_MAX_MILLIS vengono inserite nel log, insieme allo stacktrace che ne ha portato l’esecuzione.

Required: no
Default: false


SLOW_QUERY_LOG_MAX_MILLIS #

Indica il tempo massimo di esecuzione degli stopwatch inseriti all’interno del framework per l’esecuzione delle query generate. Questo parametro è rilevante solo quando la proprietà ENABLE_SLOW_QUERY_LOG è true.

Required: no
Default: 500


SQL_DATETIME_TIMEZONE #

Indica la timezone con cui vengono salvati i campi di tipo datetime nel database.
In MariaDB il tipo di dato ‘datetime’ non è time zoned, e sul database viene salvata una rappresentazione stringificata del dato. Questa proprietà indica in qual è la timezone di riferimento con cui interpretare il dato presente sul database.

Required: no
Default: GMT


SQL_IN_PARAM_SIZE_THRESHOLD #

Indica la soglia relativa al numero di elementi in base alla quale una clausola di IN o di NOT IN viene applicata o meno su DB. Per un numero di elementi inferiore o uguale alla soglia, la clausola viene applicata direttamente nella query sul DBMS, per un numero maggiore viene applicata in memoria.
Questo parametro viene preso in considerazione unicamente nelle query generate ed eseguite dall’algoritmo di ottimizzazione attualmente presente nel framework.

Required: no
Default: 20000


USE_RUNTIME_QUERY_GENERATOR #

Contiene una stringa comma separated degli identificatori di classe e di ruoli per cui è abilitato l’utilizzo del runtime query generator per l’esecuzione delle query di lettura.

L’identificativo di una classe è dato da $className
L’identificativo di un ruolo è dato da $parentClassName_$roleName

Required: no
Default: “”


ATTRIBUTE_LAZY_LOADING #

Quando impostata a true, consente di abilitare il caricamento degli attributi in modalità lazy utilizzando il RQG.

Required: no
Default: false


ENABLE_PERFORMANCE_QUERY_LOG #

Consente di abilitare funzionalità di misurazione delle prestazioni della cloudlet.

Required: no
Default: false

Proprietà di tipo mail #

MAIL_SYSTEM_CLASS #

Serve ad indicare il componente che la cloudlet deve utilizzare per l’invio delle email. Attualmente viene utilizzata per permettere di iniettare un componente mock dell’implementazione reale, spegnendo di fatto l’invio effettivo delle email (utile nelle cloudlet di validazione).

Questa proprietà può avere due valori possibili:

  1. com.fhoster.utils.MailSystem
  2. com.fhoster.utils.DummyMailSystem

Required: no


Sono state aggiunte proprietà custom di Livebase per gestire l’autenticazione SMTP:

mail.smtp.auth #
(Boolean) Definisce se deve essere utilizzata l’autenticazione o meno.
mail.smtp.auth.username #
(String) Lo username di autenticazione.
mail.smtp.auth.password #
(String) La password dell’SMTP.

Tutte le altre proprietà definibili fanno riferimento a quelle standard utilizzate in java per configurare i componenti per l’invio delle email:
https://javaee.github.io/javamail/docs/api/javax/mail/package-summary.html
https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html

Esempio di configurazione SMTP Google #

PropertyValue
mail.smtp.hostsmtp.gmail.com
mail.smtp.port587
mail.smtp.authtrue
mail.smtp.starttls.enabletrue
mail.smtp.auth.usernameYOUR_SMPT_USERNAME
mail.smtp.auth.passwordYOUR_SMPT_PASSWORD